#include <stdio.h>

int main() {
    // short是占2个字节的整型，int是占4个字节的整型
    short i = 5;
    short j;
    j = i << 1; // 左移1位是乘2
    printf("j=%d\n", j); // j=10
    j = i >> 1; // 右移1位是除2
    printf("j=%d\n", j); // j=2
    i = -7;
    unsigned short s = -7;
    unsigned short r;
    j = i >> 1; // 有符号数右移1位
    r = s >> 1; // 无符号数右移1位
    printf("j=%d,r=%d\n",j,r); // j=-4,r=32764

    i = 5,j=7;
    // 按位与
    printf("i&j=%d\n",i&j); // i&j=5
    // 按位或
    printf("i|j=%d\n",i|j); // i|j=7
    // 按位异或
    printf("i^j=%d\n",i^j); // i^j=2

    int arr[5] = {8,5,3,5,8};
    int res = 0;
    for(int n=0;n<5;n++){
        res ^=arr[n];
    }
    printf("%d\n",res);
    return 0;
}
